首页 > 试题广场 >

杨辉三角(一)

[编程题]杨辉三角(一)
  • 热度指数:3053 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个非负整数 num ,生成杨辉三角的前 num 行。
杨辉三角中,每个数是左上方和右上方的数之和。

数据范围:

例如当输入为4时,对应的返回值为[[1],[1,1],[1,2,1],[1,3,3,1]],打印结果如下图所示:

示例1

输入

1

输出

[[1]]
示例2

输入

4

输出

[[1],[1,1],[1,2,1],[1,3,3,1]]
class Solution:
    def generate(self , num: int) -> List[List[int]]:
        # write code here        
        prev = [1]
        res = [[1]]
        if num== 1:
            return res
        for i in range(2,num+1):
            cur = [1]
            for j in range(0,len(prev)-1):
                cur.append(prev[j] + prev[j+1])
            cur.append(1)
            res.append(cur)
            prev = cur
        return res

发表于 2022-04-22 11:20:30 回复(0)
class Solution:
    def generate(self , num: int) -> List[List[int]]:
        all_res=[]
        # write code here
        for i in range(1,num+1):
            res=[]
            for j in range(i):
                if j==0&nbs***bsp;j==i-1:
                    res.append(1)
                else:
                    res.append(all_res[i-2][j]+all_res[i-2][j-1])
            all_res.append(res)
        return all_res

发表于 2022-01-12 08:05:13 回复(0)